const fs = require('fs')
//当加入{'flag':'a'}的时候会出现小错误
//只要修改一下文件名就能正确
//异步修改
console.log('异步修改开始')
fs.rename('./b.json','./a.json',error => {
    if(error){
        throw error;
    }
    console.log('异步修改成功')
})
console.log('异步修改结束')


//同步修改
// console.log('同步修改开始')
// try{
//     let results = fs.renameSync('./a.json','./b.json')
//     console.log(results)
// }catch(error){
//     console.log(error)
// }
// console.log('同步修改结束')


//异步拷贝文件
//copyFile('','',(err)=>{})
/*
 第一个参数是要复制的文件
 第二个参数是复制到那个文件
 第三个参数是回调函数
*/
console.log('文件拷贝开始')
fs.copyFile('./a.json','./c.json', error =>{
    if(error){
        throw error;
    }
    console.log('复制且重命名成功')
});
console.log('异步拷贝文件结束')

//同步拷贝文件
/*
copyFileSync('','',)
第一个参数是要复制的文件
第二个是复制到哪里
第三个参数是 一个整数类型的标识符
0：默认覆盖已存在的文件
*/
console.log('同步拷贝文件开始')
try{
    let kaob = fs.copyFileSync('./a.json','./d.json');
    console.log(kaob)
}catch(error){
    console.log(error);
}
//constants.COPYFILE_EXCL : 如果dest 已存在 ，则拷贝操作将失败
try{
    let kaob = fs.copyFileSync('./a.json','./d.json',fs.constants.COPYFILE_EXCL);
    console.log(kaob)
}catch(error){
    console.log(error);
}
//constants.COPYFILE_FICLONE：拷贝操作将尝试创建写时拷贝连接，如果平台不支持写时拷贝，则使用后备的拷贝机制
try{
    let kaob = fs.copyFileSync('./a.json','./d.json',fs.constants.COPYFILE_FICLONE);
    console.log(kaob)
}catch(error){
    console.log(error);
}
//constants.COPYFILE_FICLONE_FORCE：如果平台不支持写时拷贝，则拷贝操作将失败
try{
    let kaob = fs.copyFileSync('./a.json','./d.json',fs.constants.COPYFILE_FICLONE_FORCE);
    console.log(kaob)
}catch(error){
    console.log(error);
}